package com.ayu.shortlink.admin.service;

import com.ayu.shortlink.admin.dao.entiry.GroupDO;
import com.ayu.shortlink.admin.dto.req.ShortLinkGroupAddReqDTO;
import com.ayu.shortlink.admin.dto.req.ShortLinkGroupSortReqDTO;
import com.ayu.shortlink.admin.dto.req.ShortLinkGroupUpdateReqDTO;
import com.ayu.shortlink.admin.dto.resp.ShortLinkGroupRespDTO;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

public interface GroupService extends IService<GroupDO> {

    /**
     * 增加分组
     * @param requestPram 请求参数
     */
    void addGroup(ShortLinkGroupAddReqDTO requestPram);

    /**
     * 增加分组
     * @param  username 用户名
     * @param requestPram 请求参数
     */
    void addGroup(String username,ShortLinkGroupAddReqDTO requestPram);

    /**
     * 查询当前用户的短链接分组
     * @return 短链接分组集合
     */
    List<ShortLinkGroupRespDTO> listGroup();

    /**
     * 修改分组信息
     * @param requestParam 用户请求参数
     */
    void updateGroup(ShortLinkGroupUpdateReqDTO requestParam);

    /**
     * 删除短链接分组 (软删除)
     * @param gid 分组标识
     */
    void deleteGroup(String gid);

    /**
     * 将分组集合修改排序
     * @param requestPram 修改参数
     */
    void sortGroup(List<ShortLinkGroupSortReqDTO> requestPram);
}
